home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / misc / copjmp.lha / CopJMP.asm next >
Assembly Source File  |  1995-09-30  |  4KB  |  127 lines

  1. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  2. ;»»»»»
  3. ;»»»»»  $VER: CopperJMP.asm 1.0 (15.9.95)
  4. ;»»»»»
  5. ;»»»»»  Programmed by Dennis Jacobfeuerborn.
  6. ;»»»»»
  7. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  8.  
  9.       OPT     O+,D+
  10.       SECTION CopperJMP,CODE
  11.  
  12. ;Begin »»»»» INCLUDES «««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  13.         Include My/Macros.I
  14.         Include Exec/Memory.I
  15.         Include Graphics/GfxBase.I
  16. ;End
  17. ;Begin »»»»» STRUCTURES «««««««««««««««««««««««««««««««««««««««««««««««««««««««
  18.         INITVARS        CopperJMPBase,0
  19.             LVAR    GfxBase
  20.             LVAR    OldCopper
  21.             WVAR    Intena
  22.             WVAR    Dmacon
  23.         ENDVARS         CopperJMPBase
  24.  
  25. ; STACKFRAMES -----------------------------------------------------------------
  26.  
  27.         INITVARS        global,0
  28.             LVAR    ReturnCode
  29.         ENDVARS         global
  30. ;End
  31.  
  32. ;Begin »»»»» Main() () ««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  33. Main            Movem.l d1-d7/a0-a6,-(sp)
  34.         Lea     VarTable(pc),a5
  35. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  36.         Bsr     Init
  37. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  38. .wm             Btst    #6,$bfe001
  39.         Bne.s   .wm
  40. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  41. .Exit           Bsr     Exit
  42. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  43.         Movem.l (sp)+,d1-d7/a0-a6
  44.         Moveq   #0,d0
  45.         Rts
  46. ;End
  47.  
  48. ;Begin »»»»» Init()
  49. Init            Movem.l d1-d7/a0-a6,-(sp)
  50. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  51.         Lea     GfxName(pc),a1
  52.         Moveq   #32,d0
  53.         CALL    Exec,OpenLibrary
  54.         VPUT.l  d0,GfxBase
  55. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  56.         VPUT.w  $dff01c,Intena
  57.         Move.w  #$7fff,$dff09a
  58.         VPUT.w  $dff002,Dmacon
  59.         Move.w  #$7fff,$dff096
  60. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  61.         VGET.l  GfxBase,a6
  62.         VPUT.l  gb_copinit(a6),OldCopper
  63. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  64.         Lea     CopJMP,a0
  65.         Move.l  #CopperList2,d0
  66.         Move.w  d0,2(a0)
  67.         Swap    d0
  68.         Move.w  d0,6(a0)
  69. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  70.         Move.l  #CopperList1,$dff080
  71.         Move.w  #0,$dff088
  72. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  73.         Move.w  #$83f0,$dff096
  74. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  75. .Exit           Movem.l (sp)+,d1-d7/a0-a6
  76.         Rts
  77. ;End
  78. ;Begin »»»»» Exit() ()
  79. Exit            Movem.l d0-d7/a0-a6,-(sp)
  80. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  81.         Move.w  #$7fff,$dff096
  82.         VGET.w  Dmacon,d0
  83.         Or.w    #$8000,d0
  84.         Move.w  d0,$dff096
  85.         Move.w  #$7fff,$dff09a
  86.         Move.w  #$7fff,$dff09c
  87.         VGET.w  Intena,d0
  88.         Or.w    #$8000,d0
  89.         Move.w  d0,$dff09a
  90. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  91.         VGET.l  OldCopper,$dff080
  92.         Move.w  #0,$dff088
  93. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  94.         VGET.l  GfxBase,a1
  95.         CALL    Exec,CloseLibrary
  96. ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  97.         Movem.l (sp)+,d0-d7/a0-a6
  98.         Rts
  99. ;End
  100.  
  101. ;Begin »»»»» DATA «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  102. GfxName         Dc.b    "graphics.library",0
  103.         Even
  104.  
  105. VarTable        Dcb.b   CopperJMPBase_SIZE,0
  106.         Even
  107.  
  108.     SECTION Copper1,DATA_C
  109.  
  110. CopperList2     Dc.w    $100,$0200,$1fc,0
  111.         Dc.w    $800f,-2
  112.         Dc.w    $106,$0000,$180,$500
  113.         Dc.w    $106,$0200,$180,$500
  114.         Dc.l    -2
  115.  
  116.         Dc.b    "These copperlists are not connected !"
  117.         Even
  118.  
  119. CopperList1     Dc.w    $100,$0200,$1fc,0
  120.         Dc.w    $106,$0000,$180,$050
  121.         Dc.w    $106,$0200,$180,$050
  122. CopJMP          Dc.w    $86,0
  123.         Dc.w    $84,0
  124.         Dc.w    $8a,0
  125.    END
  126. ;End
  127.